As a general rule, the control or management of the systems is handled by information processing means based on computers, peripheral devices and appropriate interfaces, all these hardware components being coupled in a network. The availability of the systems in operation is a particularly sensitive point. Depending on the nature of the systems, the operational availability is more or less crucial.
The availability of the systems can therefore be very critical. It affects in particular the reliability of the systems, but also their profitability, for example. To ensure this operating availability, duplicating, or even triplicating, hardware and software component subsystems is known. This is what is called redundancy. Thus, in parallel with the main subsystem, also called the master system, there is at least one redundant subsystem or slave system. In the event of a shutdown of the master system, the slave system must take over the control of the system and therefore ensure the operating continuity. In practice, depending on the complexity of the systems, a subsystem comprises one to several computers and the associated peripheral devices. At least two criteria need to be considered to assess the performance of a redundant system, or, more specifically, to assess the availability performance of a system. Firstly, the integrity of the data and of the functions needs to be taken into account. The other important criterion is the response time of the slave system following the shutdown of the master system. There are systems for which operating shutdowns must be extremely short or even non-existent, which means, for example, that the shutdown of operation on the computers lasts significantly less than one second, in the order of 500 milliseconds.
Moreover, the software architecture of the modern systems is normally based on a component approach, particularly for modular and reusable systems. The latter two properties are very important from the industrial and economic point of view. There are standard software component models, for example EJB, an acronym standing for “Enterprise Java Bean”, or CCM, an acronym standing for “CORBA Component Model”, which support an architecture based on the component approach. However, these software component models do not satisfy a high availability, high performance constraint. There is, for example, a model, FT CORBA, which satisfies the availability constraints, but it is an object-oriented model and not a software component-oriented, and therefore low level, model. This model is aimed at object CORBA, FT standing for “Fault Tolerance”, which is an expression expressing availability.